#include"head.h"

void search_all_info(int sockfd,int id)
{
    int i=0;
    char buf_2[4];

    if(recv(sockfd,buf_2,4,0)<0)         //服务器发来订单总数
    {
        perror("recv");
        return ;
    }
    if(atoi(buf_2)<1)
    {
        printf("未查询到订单");
        return ;
    }
    printf("物流订单总数：%s\n",buf_2);

    i=atoi(buf_2);

    for(int j=0;j<i;j++)
    {
        receive(sockfd);                //接收订单号并打印
    }
    my_system();
    return ;
}

void receive(int sockfd)
{
    flow q;
    if (recv(sockfd, &q, sizeof(flow), 0) < 0)
    {
        perror("recv");
        printf("接收出错\n");
        return;
    }
    printf("%d\t",q.f_id);
    printf("%d\t",q.u_id);
    printf("%s\t",q.origin);
    printf("%s\t",q.end);
    printf("%s\t",q.del);
    printf("%s\t",q.rec);
    printf("%s\t",q.time);
    printf("%s\t",q.loc);
    printf("%s\t",q.film);
    printf("%s\n",q.sit);
    return ;
}



void insert_info(int sockfd,int id)
{

    char buf[32];
    char buf_1[10];
    char buf_2[32];



    if(recv(sockfd,buf_2,32,0)<0)         //服务器发来，请录入订单信息；
    {
        perror("recv");
        return ;
    }
    printf("%s\n",buf_2);

    deliver_flow(sockfd);


    return ;
}

void deliver_flow(int sockfd)
{
    flow q;
    int id=0;
    int id_1=0;
    char buf_1[16];
    printf("请输入快递单号：\n");
    scanf("%d",&q.f_id);
    getchar();
    printf("请输入收件者ID：\n");
    scanf("%d",&q.u_id);
    getchar();
    printf("请输入起始地：\n");
    scanf("%s",q.origin);
    getchar();
    printf("请输入目的地：\n");
    scanf("%s",q.end);
    getchar();
    printf("请输入发件人：\n");
    scanf("%s",q.del);
    getchar();
    printf("请输入收件人：\n");
    scanf("%s",q.rec);
    getchar();
    printf("请输入预到达时间：\n");
    scanf("%s",q.time);
    getchar();
    printf("请输入当前位置：\n");
    scanf("%s",q.loc);
    getchar();
    printf("请输入快递公司：\n");
    scanf("%s",q.film);
    getchar();
    printf("请输入接收情况：\n");
    scanf("%s",q.sit);
    getchar();
    if(send(sockfd,&q,sizeof(flow),0)<0)
    {
        perror("send");
        printf("录入失败\n");
    }
        if(recv(sockfd,buf_1,16,0)<0)         //服务器发来，删除成果与否
    {
        perror("recv");
        return ;
    }
    if(strcmp(buf_1,"录入成功")==0)
    {   
        printf("录入成功\n");
    }
    else
    {
        printf("录入失败\n");
    }
    return ;
}


/*更新中转站，是否被接收*/
void update_info(int sockfd,int id)
{
    char buf[32];
    char buf_1[10];
    char buf_2[32];



    if(recv(sockfd,buf_2,32,0)<0)         //服务器发来，请录入更新信息；
    {
        perror("recv");
        return ;
    }
    printf("%s\n",buf_2);

    update_flow(sockfd);

    return ;
}

void update_flow(int sockfd)
{
    flow q;
    int id;
    char buf_1[16];

    printf("请输入要更新的单号：\n");
    scanf("%d",&q.f_id);
    printf("请输入跟新的站点：\n");
    scanf("%s",q.loc);
    getchar();
    printf("请输入更新的接收情况：\n");
    scanf("%s",q.sit);
    getchar();

    if(send(sockfd,&q,sizeof(q),0)<0)
    {
        perror("send");
        printf("更新失败\n");
    }

    if(recv(sockfd,buf_1,16,0)<0)         //服务器发来，删除成果与否
    {
        perror("recv");
        return ;
    }

    if(strcmp(buf_1,"更新成功")==0)
    {   
        printf("更新成功\n");
    }
    else
    {
        printf("更新失败\n");
    }

    return ;
}


void delete_info(int sockfd,int id)
{
    char buf[32];
    char buf_1[10];
    char buf_2[32];

    if(recv(sockfd,buf_2,32,0)<0)         //服务器发来，请输入要删除的单号；
    {
        perror("recv");
        return ;
    }
    printf("%s\n",buf_2);

    delete_flow(sockfd);

    return ;
}

void delete_flow(int sockfd)    //删除单号
{
    char buf[16];
    char buf_1[16];
    scanf("%s",buf);
    getchar();
    if(send(sockfd,buf,16,0)<0)
    {
        perror("send");
        printf("删除失败\n");
    }
    if(recv(sockfd,buf_1,16,0)<0)         //服务器发来，删除成果与否
    {
        perror("recv");
        return ;
    }
    if(strcmp(buf_1,"删除成功")==0)
    {   
        printf("删除成功\n");
    }
    else
    {
        printf("删除失败\n");
    }
    return ;
}

/*添加管理员*/
void add_admin(int sockfd)
{
    char buf[32];
    char buf_1[10];
    char buf_2[32];
    if(recv(sockfd,buf,32,0)<0)         //服务器回复。进行什么功能
    {
        perror("recv");
        return ;
    }

    sign_in(sockfd,0);
    return ;
}


